#pragma once


#include <leveldb/write_batch.h>

namespace PC2
{


class ParticipantExecutor
{
public:
	virtual ~ParticipantExecutor() {}

public:
	virtual bool Prepare(uint32_t aTransId, char const* apData, uint32_t aSize, leveldb::WriteBatch* apBatch) = 0;
	virtual void Commit(uint32_t aTransId, char const* apData, uint32_t aSize, leveldb::WriteBatch* apBatch) = 0;
	virtual void Abort(uint32_t aTransId, char const* apData, uint32_t aSize, leveldb::WriteBatch* apBatch) = 0;

};

}